#include<bits/stdc++.h>
using namespace std;
int mod=998244353;
const int m=1e6;
long long a[m];
void solve(){
//int a[m];
a[0]=1;
a[1]=1;
for(int i=2;i<m;i++){
a[i]=(a[i-1]*i)%mod;
}
}
int main(){
int t;
cin>>t;
solve();
while(t--){
string s;
cin>>s;
int n=s.size();
long long cnt=1,cnt1=1;
vector<int>v;
for(int i=0;i<s.size()-1;i++){
if(s[i]==s[i+1])cnt++;
if(s[i]!=s[i+1]){
if(cnt>1) v.push_back(cnt);
cnt=1;
}
}
v.push_back(cnt);
long long sum=0,type=1;
for(int i=0;i<v.size();i++){
sum+=(v[i]-1);
type=(type*v[i])%mod;
}
type=(type*a[sum])%mod;
cout<<sum<<" "<<type<<endl;
/* long long n;
cin>>n;
long long a[n];
long long b[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
}
sort(a,a+n);
sort(b,b+n);
int sum1=0,sum2=0;
for(int i=0;i<n;i++){
sum1+=a[i];
sum2+=b[i];
}
sum1=sum1+n*b[0];
sum2=sum2+n*a[0];
cout<<min(sum1,sum2)<<endl;
bool flag =false;
for(int i=1;i<n;i++){
if(a[i][0]>=a[0][0]&&a[i][1]>=a[0][1])flag=true;
}
if(flag){
cout<<-1<<endl;
}
else{
cout<<a[0][0]<<endl;
}*/
}
return 0;
}
1654C - Alice and the Cake | 369A - Valera and Plates |
1626A - Equidistant Letters | 977D - Divide by three multiply by two |
1654B - Prefix Removals | 1654A - Maximum Cake Tastiness |
1649A - Game | 139A - Petr and Book |
1612A - Distance | 520A - Pangram |
124A - The number of positions | 1041A - Heist |
901A - Hashing Trees | 1283A - Minutes Before the New Year |
1654D - Potion Brewing Class | 1107B - Digital root |
25A - IQ test | 785A - Anton and Polyhedrons |
1542B - Plus and Multiply | 306A - Candies |
1651C - Fault-tolerant Network | 870A - Search for Pretty Integers |
1174A - Ehab Fails to Be Thanos | 1169A - Circle Metro |
780C - Andryusha and Colored Balloons | 1153A - Serval and Bus |
1487C - Minimum Ties | 1136A - Nastya Is Reading a Book |
1353B - Two Arrays And Swaps | 1490E - Accidental Victory |